package demo

import (
	"fmt"
	"time"
)

func timeTest1(){
	/*
	获取时间的函数为time.now()，这里加不加.Local()，获取的都是当地时间。
加.UTC得到的是0时区（也就是伦敦）的时间。
func Now() Time这个函数的返回值是Time，也就是时间类型。
	*/
	fmt.Println(time.Now())
	fmt.Println(time.Now().Local())
	fmt.Println(time.Now().UTC()) //0时区（伦敦）时间
	fmt.Println(time.Now().Location())   //本地时间

	/*
	这次，加不加.Local()、.UTC()结果都是一样的。
	时间戳：格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起到此时此刻的【总秒数】
	*/
	fmt.Println(time.Now().Unix())
	fmt.Println(time.Now().Local().Unix())
	fmt.Println(time.Now().UTC().Unix())
	fmt.Println(time.Now().UnixNano())

	tTran1 := time.Now()
	tStr1 := tTran1.Format("2006-01-02 15:00:01")
	tStr2 := tTran1.Format("20060102 15:00:00")

	fmt.Println(tTran1)
	fmt.Println(tStr1)
	fmt.Println(tStr2)


	/*
	将str 转成 时间戳类型
	*/
	tTran2 := time.Now()
	t2Str1 := tTran2.Format("2006-01-02 15:04:05")
	//t2Str2  := tTran2.Format("20060102 15:03:01")
	timestamp1 , _ := time.Parse("2006-01-02 15:04:05",t2Str1)
	//timestamp2 , _ := time.Parse("20060102 15:02:01",t2Str2)
	fmt.Println(tTran2 ,   t2Str1 , timestamp1)
	time.Sleep(time.Second)
	if timestamp1.Unix() != tTran2.Unix() {
		fmt.Printf("failed to transfer timestamp 1: %v ==> %v\n",timestamp1.Unix() , tTran2.Unix())
	}


	//if  timestamp2.Unix() != tTran2.Unix() {
	//	fmt.Printf("failed to transfer timestamp 2: %v ==> %v\n",timestamp1.Unix() , tTran2.Unix())
	//}


	/*

	将时间戳转成时间类型
	用函数func Unix(sec int64, nsec int64) Time进行转换，第一个参数是秒，第二个参数是纳秒，会被加到结果的小数点后面。

	*/



	tmsp := time.Now().Unix()
	fmt.Println(tmsp)
	t1 := time.Unix(tmsp, 0).UTC()
	t2 := time.Unix(tmsp, tmsp).Local()
	fmt.Println(t1)
	fmt.Println(t2)


}
